大数据存算分离研究和实践——企业级大数据平台存算分离架构之改造
14
星期四
2021年1月
验“金”室
金融领域企业级大数据平台一般采用存算一体架构,随着数据量快速增长,计算资源和存储资源之间矛盾愈来愈突出,无法满足“扩存储不扩计算、降低存储成本、计算节点弹性扩缩容、多集群使用一份共享数据”等需求,大数据存算分离架构能更好地平衡大数据的计算资源和存储资源,达到性能与成本最优配比、兼具灵活性、数据可靠性等特点。
一、现状分析
企业内大数据技术体系最早起源于对海量数据进行批量加工处理的场景,批量加工通常以全表扫描为主,为了实现较好的性能,需尽可能减少网络上的数据传输量,尽可能在存储数据的那台服务器上完成对该份数据的加工处理,因此在搭建集群时采用了基于物理机的存算一体化部署方式,每台物理机均配置有较强的CPU及较大的本地存储。同时大数据平台主要使用YARN和HDFS两类服务进行资源管理,每个集群都会通过部署独立的YARN服务来管理计算资源,通过部署独立的HDFS服务来管理存储资源。不同集群之间的YARN和HDFS服务都相互独立。
图1 大数据平台集群
由于大数据体系特性,大数据平台有如下3个痛点:
历史数据持续增加,一体化扩容后既扩存储又扩计算,导致计算资源利用率低。
大数据平台内多个集群间资源无法共享复用。
业务高峰期与低峰区计算资源变化大,计算节点无法自动弹性扩缩容。
随着时间推移,大数据平台内累积的历史数据会逐年增加,集群需通过扩容来满足数据存储的需要。但在业务场景中所需访问的数据仍然集中在最近两三年内,因此对计算资源的需求量并不会像存储需求量那样逐年增加,而是会相对比较稳定,最终就会导致在集群一体化扩容后,计算资源的使用率较低。
如前所述,大数据平台通常采用YARN服务来管理计算资源,采用HDFS服务来管理存储资源,不同集群之间相互独立,不同集群数据无法共享,为了减少业务数据在不同集群间搬迁,就出现不同集群内重复保存业务数据的情况,造成存储资源的浪费。
大数据场景的资源使用高峰往往具有明显的周期性,例如联机类服务的高峰期主要在白天,批量类服务的高峰期主要集中在每天凌晨上游文件到达后至当日9点前,几类服务之间存在明显的资源错峰。但是如前面所述,由于不同的大数据集群都使用各自独立的YARN服务进行资源管理,因而多个集群间资源无法错峰复用,每个集群都只能根据各自的业务高峰期所需的资源量来做性能容量评估,造成计算资源的浪费。
二、改进方案
通过研究大数据存算分离解决方案,大数据平台借鉴相关技术点,提升如下能力:
基于对象存储服务(OBS),形成存储资源独立扩容能力。
基于对象存储服务(OBS),形成数据共享能力。
基于K8s容器化改造,提升计算资源共享能力。
基于K8s容器化改造,形成计算资源独立扩容能力。
随着历史数据的不断累积,大数据平台上某些批量集群的存储资源也先于计算资源达到瓶颈,因此需对管理存储资源进行单独扩展。
存算分离方案的存储采用对象存储服务(OBS)存储数据,OBS是一款稳定、安全、高效、易用的云存储服务,形成独立存储池,支持动态按需扩容,可以在不扩容计算资源的情况下,解决存储瓶颈问题。经过测算,在存算一体化架构中,集群数据量增加一倍,为了满足存储的需要,集群节点数将增加1倍,计算资源将有一定浪费,而在存算分离架构体系下,可以按需扩容存储节点,从而充分发挥计算和存储资源的能力,有效避免超大规模集群的资源浪费。
图2 存算一体架构与存算分离架构资源对比
对象存储服务(OBS)具备标准Restful API接口,存储任意数量和形式的结构化、非结构化数据,集成出一个统一的分布式文件系统,透明地对上层的各类大数据计算引擎提供统一的数据存储服务,从而实现了不同集群间数据共享,减少集群间业务数据搬迁,降低了重复保存业务数据情况,节省了存储资源。
目前大数据生态中的常用技术组件:Hive、Spark、Flink等都已经支持向K8s申请资源,因此将原先基于YARN的计算资源管理模式,改造成基于统一K8s资源池的管理模式,K8s统一管理的计算资源可以在多个集群之间复用,充分利用高峰期错峰的特性来动态调配计算资源,从而使大数据平台可以按平台整体的粒度来做性能容量设计,而不再是按各个集群的粒度,以有效提升整体资源利用率。
图3 存算一体架构与存算分离架构对比
大数据平台在实现基于K8s容器化改造之后,除了支持在大数据平台内部的集群之间进行计算资源复用,还能进一步与云计算平台之间形成计算资源复用,使企业内部只需要管理基于K8s的一套计算资源池。这样当大数据平台发生计算资源紧张,但存储资源却相对富裕时,就不需要再像原先的方式那样采用将计算与存储资源等比例的一体化扩容,而是可以向云计算平台单独地申请计算资源,减少因计算和存储需求不匹配而造成的资源浪费。
三、总结
企业内大数据平台将底层本地存储替换为对象存储服务,形成计算节点和存储节点相互独立的存算分离架构,实现计算资源和存储资源的灵活扩展,在承担日常的业务负载过程中,计算资源或存储资源中的某一项出现瓶颈时,均可以独立地进行在线分配和回收,快速响应企业内客户资源灵活使用的需求,为金融领域企业级大数据平台架构转型提供成熟解决方案。
往期推荐
FCC30+
长按左边二维码
关注我们不迷路